﻿package com.teaphy.coroutinecrawler.job

import kotlinx.coroutines.*

fun main() = runBlocking {
    println("start")

    val startTime = System.currentTimeMillis()
    val job = launch(Dispatchers.IO) {
        var nextNum = 0
        while (isActive) {
//        while (true) {
            // 在任务执行的时候，不停的判断当前任务是否处于active 状态，如果不是则停止执行
            delay(500)
            println("I'm sleeping $nextNum ...")
            nextNum++
        }
    }

    delay(1300L)
    println("aaa")
    // 取消任务并且等待任务执行完成， cancelAndJoin 是 Job 的一个扩展函数，同时执行 cancel 和join
    job.cancelAndJoin()

    println("end")

}
